import 'package:equatable/equatable.dart';
import 'package:flutter/cupertino.dart';
import 'package:mobile_app.core/core/domain/entities/dialect.dart';
import 'package:mobile_app.core/core/domain/entities/learning_content/lexical_item/lexical_item.dart';
import 'package:mobile_app.core/core/presentation/widgets/stateful_wloc.dart';
import 'package:mobile_app.core/core/presentation/widgets/wloc_builder.dart';
import 'package:mobile_app.home.core/core/presentation/helpers/card_wloc_mixin.dart';
import 'package:mobile_app.home.core/core/presentation/widgets/card_button_view.dart';
import 'package:mobile_app.home.core/core/presentation/widgets/card_full_content.dart';
import 'package:mobile_app.home.core/core/presentation/widgets/lexical_item_card.dart';
import 'package:mobile_app.home.learning.spaced_repetitions/unspecified_lexical_item_exposed_card/application/bloc/bloc.dart'
    as bloc;
import 'package:mobile_app.home.learning.spaced_repetitions/unspecified_lexical_item_exposed_card/injection_container.dart'
    as unspecified_lexical_item_exposed_card_di;
import 'package:mobile_app.home.learning.spaced_repetitions/unspecified_lexical_item_exposed_card/presentation/localization/translation.dart';

part 'view.dart';

part 'wloc.dart';

part 'wloc_state.dart';

class UnspecifiedLexicalItemExposedCard extends StatefulWidget {
  const UnspecifiedLexicalItemExposedCard({
    required this.lexicalItem,
    required this.dialect,
    required this.safeToPronounce,
    required this.imagePath,
    required this.onMarkAsKnownButtonPressed,
    required this.onMarkAsUnknownButtonPressed,
    required this.onMoreActionButtonPressed,
    super.key,
  });

  final LexicalItem lexicalItem;
  final Dialect dialect;
  final bool safeToPronounce;
  final String? imagePath;
  final VoidCallback onMarkAsKnownButtonPressed;
  final VoidCallback onMarkAsUnknownButtonPressed;
  final VoidCallback onMoreActionButtonPressed;

  @override
  State<UnspecifiedLexicalItemExposedCard> createState() =>
      _UnspecifiedLexicalItemExposedCardWloc();
}
